package com.zenithmind.coding.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zenithmind.coding.pojo.entity.TestCase;

import java.util.List;

/**
 * 测试用例服务接口
 * 
 * @author ZenithMind Team
 * @since 2025-01-09
 */
public interface TestCaseService extends IService<TestCase> {

    /**
     * 根据问题ID查询测试用例
     * 
     * @param problemId 问题ID
     * @param includePrivate 是否包含私有测试用例
     * @return 测试用例列表
     */
    List<TestCase> getTestCasesByProblemId(String problemId, Boolean includePrivate);

    /**
     * 创建测试用例
     * 
     * @param testCase 测试用例
     * @return 是否成功
     */
    Boolean createTestCase(TestCase testCase);

    /**
     * 更新测试用例
     * 
     * @param testCase 测试用例
     * @return 是否成功
     */
    Boolean updateTestCase(TestCase testCase);

    /**
     * 删除测试用例
     * 
     * @param id 测试用例ID
     * @return 是否成功
     */
    Boolean deleteTestCase(String id);

    /**
     * 批量创建测试用例
     * 
     * @param testCases 测试用例列表
     * @return 创建成功数量
     */
    Integer batchCreateTestCases(List<TestCase> testCases);
}
